package io.geekidea.boot.insurancePolicy.dto;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.TableField;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

@Data
@NoArgsConstructor
@ToString(callSuper = true)
@ColumnWidth(value = 15)

public class InsuranceExcel implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @TableField("orderNo")
    @ExcelProperty("订单号")
    private String orderNo; //订单号

    @TableField("factoryOrderNo")
    @ExcelProperty("厂家单号")
    private String factoryOrderNo; //厂家单号

    @TableField("orderType")
    @ExcelProperty("订单类型")
    private String orderType; //订单类型

    @ExcelProperty("保外单类型")
    @TableField("wlName")
    private String wlName;


    @ExcelProperty("战区名称")
    @TableField("areaName")
    private String areaName;

    @ExcelProperty("⻔店名称")
    @TableField("storeName")
    private String storeName;

    @ExcelProperty("物料数量")
    @TableField("materialSum")
    private String materialSum; // 合计物料数量

//    @ExcelProperty("物料详情")
//    @TableField("wlTypeDetails")
//    private String wlTypeDetails; //物料详情

    @ExcelProperty("客户姓名")
    @TableField("clientName")
    private String clientName; //客户姓名

    @ExcelProperty("手机号码")
    @TableField("clientPhoneNumber")
    private Double clientPhoneNumber; //手机号码

    @ExcelProperty("支付方式")
    @TableField("payType")
    private String payType;

    @ExcelProperty("支付金额")
    @TableField("payMoney")
    private Double payMoney; //支付金额

    @ExcelProperty("审核状态")
    @TableField("auditStatus")
    private Integer auditStatus; //审核状态

    @ExcelProperty("订单状态")
    @TableField("orderStatus")
    private String orderStatus; //订单状态

    @ExcelProperty("应收⾦额")
    @TableField("receivableMoney")
    private Double receivableMoney; //合计应收金额

    @ExcelProperty("优惠⾦额")
    @TableField("discountsMoney")
    private Double discountsMoney; //合计优惠金额

    @ExcelProperty("实收⾦额")
    @TableField("practicalMoney")
    private Double practicalMoney; //合计实收金额

    @ExcelProperty("间接成本")
    @TableField("indirectCost")
    private Double indirectCost; //合计间接成本
    @ExcelProperty("有偿")
    @TableField("compensation")
    private Double compensation; //合计有偿

    @ExcelProperty("⽑利润")
    @TableField("grossProfit")
    private Double grossProfit; //合计毛利


    @ExcelProperty("合计成本价")
    @TableField("costPriceSum")
    private Double costPriceSum; //合计成本价

//    @ExcelProperty("优惠原因")

    @ExcelProperty("驳回原因")
    @TableField("turnDown")
    private String turnDown;

    @ExcelProperty("⼯程师")
    @TableField("engineerName")
    private String engineerName;

    @ExcelProperty("制单⼈")
    @TableField("makerName")
    private String makerName;

    @ExcelProperty("制单时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8",shape = JsonFormat.Shape.STRING)
    @TableField("makeOrderTime")
    private LocalDateTime makeOrderTime; //制单时间


    @ExcelProperty("审核⼈")
    @TableField("auditName")
    private String auditName;



    @ExcelProperty("订单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8",shape = JsonFormat.Shape.STRING)
    @TableField("payTime")
    private LocalDateTime payTime;//支付时间


    @ExcelProperty("应退金额")
    @TableField("refundableMoney")
    private Double refundableMoney; //应退金额

    @ExcelProperty("退款金额")
    @TableField("refundMoney")
    private Double refundMoney; //退款金额



    @ExcelProperty("备注")
    @TableField("remark")
    private String remark;

}
